Agilité et Gitlab

Les clients de votre projet

Le client (qui va utiliser le logiciel)

MPA2018 1

Le prof (qui va contraindre le logiciel)

MPA2018 2

Le prof (qui va noter votre projet)

MPA2018

Cahier Des Charges Utilisateur

Késako

Extra-functional properties

Extra-functional properties are sometimes more important than functional ones…​

nokia

Design

Quelques exemples de propriétés extra fonctionnelles…​

pylones1 pylones2

Autre exemple

antivol

© Dinga

Pour votre Projet

Focus

Correspondances de concepts Scrum/Gitlab

gitlab agile

https://about.gitlab.com/2018/03/05/gitlab-for-agile-software-development/

Build

Parlons un peu de build…​

Etude 2014 :

usage
Exemple de fichier Ant (cf. source)
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="java-build-tools" default="jar">

    <property name="src.dir" value="src"/>
    ...
    <path id="lib.path.id">
        <fileset dir="${lib.dir}" />
    </path>

    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id"/>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"/>
    </target>

</project>
Exemple de fichier Maven (cf. source)
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.technologyconversations</groupId>
    <artifactId>java-build-tools</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
            </plugin>
        </plugins>
    </build>

</project>
Exemple de fichier Gradle (cf. source)
apply plugin: 'java'
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
apply plugin: 'pmd'

version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
}

cf. http://bit.ly/jmb-git

Bonnes pratiques

https://github.com/xblanc33/QualiteDev

bonnesPratiques

Exemple : génération de la doc

Génération de la doc

image: asciidoctor/docker-asciidoctor

variables:
  GIT_SSL_NO_VERIFY: "1"

stages:
  - 📦build
  - 🦄test

html:
  stage: 📦build
  script:
    - asciidoctor README.adoc -o index.html
  artifacts:
    paths:
    - index.html

pdf_preview:
  stage: 🦄test
  when: manual
  environment:
    name: preview/$CI_COMMIT_REF_NAME
  except:
    - /master/
  artifacts:
    paths:
    - README.pdf
    expire_in: 1 week
  script:
    - asciidoctor-pdf README.adoc

GenDoc (suite)

webIDE

GenDoc (suite)

pipeline

GenDoc (suite)

manuel

GenDoc (suite)

browse

The End    (for now)